RAID 6 storage systems store data across multiple disks in data blocks along with two independent blocks of parity information. Parity information allows the system to recover the data blocks even if two disks in the system fail. Parity information is mathematically derived from the data stored on each disk. Parity information in one parity block, is usually derived by performing an exclusive disjunction operation (commonly known as an XOR operation) on the data blocks. Parity information in the other parity block is usually derived by a Galois field operation.
To accurately maintain both parity blocks, parity information must be updated each time new data is written to one of the disks. RAID 6 storage systems maintain parity information during a write operation by reading both parity blocks, then generating new parity information for each parity block based on the new data, the old data and old parity information from that parity block. The system may then overwrite the old data and old parity information.
Reading both blocks of parity information each time new data is written imposes significant stress on the system leading to slower access speeds and increased disk failures.
Consequently, it would be advantageous if a method existed to update parity information in a RAID 6 system without reading both blocks of parity information.